package utils

import (
	"github.com/bytedance/sonic"
)

// IceMapStruct
// 根据输入的v参数的类型，将其转换为JSON格式的数据，并将其反序列化到另一个接口v2中
func IceMapStruct(v interface{}, v2 interface{}) (err error) {
	resByre := []byte("")
	switch v.(type) {
	case string:
		ft := v.(string)
		resByre = []byte(ft)
	default:
		resByre, err = sonic.Marshal(v)
		if err != nil {
			return err
		}
	}
	jsonRes := sonic.Unmarshal(resByre, v2)
	if jsonRes != nil {
		return jsonRes
	}
	return nil
}
